<?php
class SectionsController extends AppController
{

    function edit($id = null)
    {

        $this->Section->id = $id;
        if ($this->request->is('get')) {
            $this->Section->recursive = 0;
            $this->set('secciones', $this->paginate());
            $this->set("cartasAsignadas", array());
            if ($id != null) {
                $this->loadModel('CartaSection');
                $this->set("cartasAsignadas", $this->CartaSection->findAllByIdSeccion($id));

                $conditions = array("CartaSection.id_seccion" => $id);
                $dbCartasNoAsignadas = $this->CartaSection->find('list', array('fields' => array('CartaSection.id_carta'),
                    'conditions' => $conditions ) );

                //  debug($dbCartasNoAsignadas);


                $this->loadModel('Carta');
                $this->set("cartas", array());
                if (!empty($dbCartasNoAsignadas)){
                    $result = count($dbCartasNoAsignadas);
                    //  debug($dbCartasNoAsignadas);
                    if ($result == 1 ){
                        $carta = $this->CartaSection->findByIdSeccion($id);
                        $idcarta  = $carta['CartaSection']['id_carta'];
                        //  debug($idcat);
                        $conditions = array("Carta.id !=" => $idcarta);
                    }
                    else $conditions = array("Carta.id !=" => $dbCartasNoAsignadas);
                $db =  $this->Carta->find("list", array(
                    'conditions' =>$conditions, 'fields' => array('Carta.nombre_app')));
                //debug($db);
                $this->set("cartas", $db);
                }
                else{
                    $db =  $this->Carta->find("list", array(
                        'fields' => array('Carta.nombre_app')));
                    $this->set("cartas",$db);
                }

            }
            $this->request->data = $this->Section->read();
            $this->loadModel('CartaSection');
            $this->set("cartasAsignadas", $this->CartaSection->findAllByIdSeccion($id));


        } else {
            if ($this->Section->save($this->request->data)) {
                $this->Session->setFlash('La sección ha sido actualizada.','infoMessage',array(),'seccion');
                $this->redirect("index");
            }
            else{
                $errors = $this->Section->invalidFields();
                $error = "";
                //debug($errors['nombre']);
                if (!empty($errors)) $error = $errors['nombre'][0];
                $this->Session->setFlash('Ha habido un error al editar la sección. '.$error,'errorMessage',array(),'seccion');

            }

        }

    }



    public function add()
    {


        if ($this->request->is('post')) { //si es un post de un formulario
            $this->Section->create();
            if ($this->Section->save($this->request->data)) {
                $this->Session->setFlash(__('La sección ha sido guardada'));
                $this->Session->setFlash('La sección ha sido guardada.','infoMessage',array(),'seccion');
                //$this->redirect(array('controller' => 'pages',  'action' => 'display', 'home'));
            } else {
                $errors = $this->Section->invalidFields();
                $error = "";
                //debug($errors['nombre']);
                if (!empty($errors)) $error = $errors['nombre'][0];

                    $this->Session->setFlash('La sección no ha podido ser guardada. '.$error,'errorMessage',array(),'seccion');
            }


        }
        $this->Section->recursive = 0;
        $this->set('secciones', $this->paginate());
        $this->set("cartasAsignadas", array());
    }


    function delete($id)
    {
        if (!$this->request->is('post')) {
            throw new MethodNotAllowedException();
        }
        if ($this->Section->delete($id)) {
            $this->Session->setFlash('La sección ha sido borrada correctamente.','infoMessage',array(),'seccion');
            $this->redirect(array('action' => 'index'));
        }
        else{
            $this->Session->setFlash('Ha habido un error al guardar la sección.','errorMessage',array(),'seccion');
        }
    }

    public function index($id = null)
    {
        $this->Section->recursive = 0;
        $this->set('secciones', $this->paginate());
        $this->set("cartasAsignadas", array());
        if ($id != null) {
            $this->loadModel('CartaSection');
            $this->set("cartasAsignadas", $this->CartaSection->findAllByIdSeccion($id));

        }

    }

    public function verCartas($id = null){
        $this->Section->recursive = 0;
        $this->set('secciones', $this->paginate());
        $this->set("cartasAsignadas", array());
        if ($id != null) {
            $this->loadModel('CartaSection');
            $this->set("cartasAsignadas", $this->CartaSection->findAllByIdSeccion($id));

        }
        $this->redirect($this->referer());
    }

    public function view($id)
    {
        $this->Section->id = $id;
        $this->set('Section', $this->Section->read());

    }


}